const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const target = process.argv.pop().replace(/--/g, '')
module.exports = {
  pages: {
    index: {
      // page 的入口
      entry: `src/project/${target}/main.js`,
      // 模板来源
      template: `src/project/${target}/public/index.html`,
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时，
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: 'Index Page',
      // 在这个页面中包含的块，默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ['chunk-vendors', 'chunk-common', 'index']
    }
  },
  productionSourceMap: process.env.NODE_ENV !== 'production',
  devServer: {
    port: 3001,
    open: true,
    /**
    *心得：起项目如果想通过proxy解决跨域问题
    *1.本地请求接口的域名端口一定要和浏览器打开的域名端口一致
    *2.pathRewrite的两种写法'^/mssp': '/'和'^/mssp': '/mssp'
    *3.如果请求地址开头都有/egis-scms-app字段使用pathRewrite其它字段绕过去也不行，谁放在前面谁的优先级更高
    **/
    proxy: {
      '/mssp': {
        target: 'http://localhost:3000',
        ws: true,
        changeOrigin: true,
        pathRewrite: {
          '^/mssp': '/'
        },
        // pathRewrite: {
        //   '^/api': '/api'   // 这种接口配置出来     http://XX.XX.XX.XX:8083/api/login
        //   //'^/api': '/' 这种接口配置出来     http://XX.XX.XX.XX:8083/login
        // }
        '/egis-scms-app': {
          target: 'http://localhost:3000',
          ws: true,
          changeOrigin: true
        }
      }
    }
  },
  chainWebpack: (config) => {
    // 指向开发项目目录
    config.resolve.alias.set('@@', path.resolve(__dirname, `src/project/${target}`))
    config.plugin('copy').use(CopyWebpackPlugin, [[{ from: 'public' }, { from: `src/project/${target}/public` }]])
    if (process.env.NODE_ENV === 'production') {
      config.plugin('js').use(require('terser-webpack-plugin'), [{ terserOptions: { compress: { drop_console: true, drop_debugger: true } } }])
    }
  },
  publicPath: '',
  outputDir: `activity/${target}`
}
